<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="./todo.css">
</head>

<body>
    <div class="box">
        <input type="text" class="inp" placeholder="请输入清单">
        <ul class="list">
            <!-- <li class="item">
                <span>1. xxxx</span>
                <button>x</button>
            </li>
            <li class="item">
                <span>2. xxxx</span>
                <button>x</button>
            </li>
            <li class="item">
                <span>3. xxxx</span>
                <button>x</button>
            </li> -->
        </ul>


    </div>

    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
        // 1. 渲染列表
        var arr = ['xxxx', 'xxxx', 'xxxx', 'xxx'];

        function rendList() {
            var str = '';
            arr.forEach(function(item, index) {
                str += `<li class="item">
                <span>${index+1}. ${item}</span>
                <button data-index='${index}'>x</button>
            </li>`;
            })
            $('.list').html(str);
        }
        rendList();

        // 2. 给输入框绑定keypress
        $('.inp').on('keypress', function() {
            // 判断按下了enter键 
            if (event.key === 'Enter') {
                // 获取输入框的内容
                var text = $(this).val();
                // 把输入框内容放入arr数组, 然后重新渲染
                arr.push(text);
                // 重新渲染列表
                rendList();
                // 清空输入框
                $(this).val('');
            }
        })


        // 3. 绑定事件,需要使用事件托管, 不然绑定不了, 因为绑定的时候,还没有button按钮
        $('.list').on('click', 'button', function() {
            // 获取自定义属性index的值
            var index = $(this).data('index');
            // 删除下标为index的元素
            arr.splice(index, 1);
            // 重新渲染列表
            rendList();
        })
    </script>
</body>

</html>